module edge_detect (
    input wire       clk        , //10MHz的时钟
    input wire       rst_n      , //异步复位，低电平有效
    input wire       clear      , //清零按钮，上升沿有效
    input wire       start_stop , //开始/暂停按钮，上升沿有效
    output reg       state_start  //是否开始的状态，1为开始，0为暂停
);

reg start_stop_r;
always @(posedge clk or negedge rst_n) begin
    if (~rst_n|clear) begin
        state_start <= 0;                     // 复位/清零后计数器处于暂停状态
    end
    else begin
        start_stop_r <= start_stop;           // 寄存输入信号start_stop，用于检测上升沿
        if (start_stop&&~start_stop_r) begin
            state_start <= ~state_start;      // start_stop的上升沿切换计数器状态(开始/暂停)
        end
    end
end

endmodule